/*******************************************************************************
 * Copyright (c) Jerges A. Bello G. 2014. Reservado todos los derechos.
 ******************************************************************************/
package com.jabex.persistence.dao;

import java.util.List;

import org.hibernate.HibernateException;

import com.jabex.common.exceptions.ErrorFunctionalException;
import com.jabex.common.exceptions.ErrorOperationalException;
import com.jabex.common.exceptions.WarningFunctionalException;
import com.jabex.common.to.MessageTO;
import com.jabex.persistence.model.User;

/**
 * Created by Jerges Bello on 14/05/2014.
 */
public interface IUserDAO extends IAccessDAO<User> {
	public static final String MODEL_NAME = "userDao";

	public MessageTO insertUser(User user) throws WarningFunctionalException, ErrorFunctionalException, ErrorOperationalException, HibernateException;

	public MessageTO deleteUser(String id) throws WarningFunctionalException, ErrorFunctionalException, ErrorOperationalException, HibernateException;

	public MessageTO updateUser(User user) throws WarningFunctionalException, ErrorFunctionalException, ErrorOperationalException, HibernateException;

	public User getUserById(String id) throws WarningFunctionalException, ErrorFunctionalException, ErrorOperationalException, HibernateException;

	public List<User> getAllUser() throws WarningFunctionalException, ErrorFunctionalException, ErrorOperationalException, HibernateException;
}
